package com.ynet.middleground.contract.service;

import java.util.List;

import javax.validation.Valid;

import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.contract.bean.*;
import com.ynet.middleground.contract.dto.*;

/**
 * @author daigaole
 * @description 提供给内管使用的服务
 * @date 2020-03-16
 */

public interface PortAdminWebService {
    /**
     * 分页查询合约模板列表
     *
     * @param requestObj 分页查询模板信息请求类
     * @return 模板列表
     */
    ServiceResult<List<PortTemplateDTO>> listTemplate(@Valid PortQueryTemplateReqPager requestObj);

    /**
     * 内管模版日志查询
     *
     * @param requestObj 内管模版日志查询
     * @return 模板列表
     */
    ServiceResult<List<PortTemplateLogDTO>> portTemplateLog(@Valid PortTemplateLogQueryReq requestObj);

    /**
     * 内管模版统计查询
     *
     * @param requestObj 内管模版统计查询
     * @return 模板列表
     */
    ServiceResult<List<PortTemplateTypeStatisticalDTO>>
        portTemplateTypeStatistical(@Valid PortTemplateTypeStatisticalReq requestObj);

    /**
     * 档案日志查询
     *
     * @param requestObj 档案日志查询
     * @return 模板列表
     */
    ServiceResult<List<PortArchiveLogDTO>> portArchiveLogQuery(@Valid PortArchiveLogQueryReq requestObj);

    /**
     * 档案查询
     *
     * @param requestObj 档案查询
     * @return 模板列表
     */
    ServiceResult<List<PortArchiveDto>> portArchiveQuery(@Valid PortArchiveQueryReq requestObj);

    /**
     * 内管查询合约信息服务
     * 
     * @param requestObj 内管查询合约信息服务
     * @return 合约信息
     * @author daigaole
     */
    ServiceResult<List<PortContractDto>> portQueryContract(@Valid PortQueryContractReq requestObj);

    /**
     * 合约统计
     * 
     * @param requestObj 请求参数
     * @return 统计信息
     */
    ServiceResult<List<PortContractSignStatisticsDto>>
        portContractStatistics(@Valid PortContractSignStatisticsReq requestObj);

    /**
     * 内管合约日志查询
     * 
     * @param requestObj 请求参数
     * @return 统计信息
     */
    ServiceResult<List<PortContractLogDTO>> portContractLog(@Valid PortContractLogQueryReq requestObj);

    /**
     * 查看关联合约
     * 
     * @param requestObj 查询合约服务
     * @return
     */
    ServiceResult<List<PortContractDto>> queryRelationContract(@Valid PortQueryRelationContractReq requestObj);

    /**
     * 获取合约类型
     * 
     * @return
     */
    ServiceResult<List<ContractTypeDTO>> getContractType();

    /**
     * 内管模版日志导出查询
     *
     * @param requestObj 内管模版日志查询
     * @return 模板列表
     */
    ServiceResult<List<PortTemplateLogDTO>> portTemplateLogExport(PortTemplateLogQueryExportReq requestObj);

    /**
     * 内管合约日志导出查询
     * 
     * @param requestObj 请求参数
     * @return 统计信息
     */
    ServiceResult<List<PortContractLogDTO>> portContractLogExport(PortContractLogQueryExportReq requestObj);

    /**
     * 档案日志导出查询
     *
     * @param requestObj 档案日志查询
     * @return 模板列表
     */
    ServiceResult<List<PortArchiveLogDTO>> portArchiveLogQueryExport(PortArchiveLogQueryExportReq requestObj);
}
